package com.learner.course.service;

import com.learner.pojo.course.Teacher;
import com.learner.pojo.course.expand.PageVariableTeacher;
import com.learner.pojo.page.PageResult;

import java.util.List;
import java.util.Map;

/**
 * @author ice2020x
 * @Date: 2023/3/9
 * @Description:
 **/
public interface TeacherService {

    /**
     * 获取讲师列表
     *
     * @return 讲师列表
     */
    List<Teacher> list();


    /**
     * 根据id删除记录
     *
     * @param id id
     */
    void removeById(String id);


    /**
     * 根据条件查询
     *
     * @param pageVariable 参数
     * @return 结果
     */
    PageResult<Teacher> listPageByPathVariable(PageVariableTeacher pageVariable);


    /**
     * 保存
     *
     * @param teacher teacher
     * @return 结果
     */
    Teacher save(Teacher teacher);

    /**
     * 根据id获取讲师信息
     *
     * @param id 讲师id
     * @return 结果
     */
    Teacher getTeacherById(String id);

    /**
     * 根据id列表删除
     *
     * @param ids 讲师id列表
     */
    void deleteByIds(List<String> ids);


    /**
     * 根据id列表删除（真实删除）
     *
     * @param ids 讲师id列表
     */
    void deleteAuthenticByIds(List<String> ids);


    /**
     * 根据关键字查询（名字列表）
     *
     * @param key 关键字
     * @return 结果
     */
    List<Map<String, Object>> getListNameByKey(String key);

    /**
     * @Description: 根据id删除讲师头像
     * @Author: ice2020x
     * @Date: 2021/10/13
     */
    boolean removeAvatarById(String id);

    /**
     * 获取讲师数据
     *
     * @param id 讲师id
     * @return 群聊列表
     */
    Map<String, Object> selectTeacherInfoById(String id);

    /**
     * 根据关键字查询（讲师列表）+状态位
     *
     * @param name  关键字
     * @param state 状态
     * @return 结果
     */
    List<Teacher> getTeacherListByName(String name, Integer state);

    /**
     * 根据状态查询
     *
     * @param state 状态
     * @return 结果
     */
    List<Teacher> getTeacherListByState(Integer state);
}
